home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / powerd / lib / powerd.lha / powerd_ppc / EStrAdd.ass < prev    next >
Encoding:
Text File  |  1980-10-22  |  553 b   |  38 lines

  1.  
  2. # EStrAdd(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1:LONG)
  3.  
  4.     .text
  5.     .global    _EStrAdd
  6.  
  7. _EStrAdd:
  8.     lhz    r6,-2(r3)
  9.     lhz    r7,-4(r3)
  10.     mr    r3,r8
  11.     sub    r7,r7,r6
  12.     add    r8,r8,r6
  13.     cmpw    r7,r5
  14.     bge    .skip
  15.     mr    r5,r7
  16. .skip:    mr.    r5,r9
  17.     beq    .finish
  18.     subi    r5,r5,1
  19.     subi    r3,r3,1
  20.     subi    r4,r4,1
  21. .loop:    lbzu    r0,1(r4)
  22.     stbu    r0,1(r3)
  23.     mr.    r0,r0
  24.     beq    .done
  25.     subi    r5,r5,1
  26.     mr.    r5,r5
  27.     bne    .loop
  28.     li    r0,0
  29.     stb    r0,1(r3)
  30. .done:    addi    r5,r5,1
  31.     sub    r9,r9,r5
  32.     add    r9,r9,r6
  33.     sth    r9,-2(r3)
  34. .finish:    blr            # r3 contains destination string pointer
  35.  
  36.     .type    _EStrAdd,@function
  37.     .size    _EStrAdd,$-_EStrAdd
  38.